cmake_minimum_required(VERSION 3.2)
project(gfmf)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES
    gfmf/svdfeature-gfmf/apex-tensor/apex_exp_template.h
    gfmf/svdfeature-gfmf/apex-tensor/apex_random.h
    gfmf/svdfeature-gfmf/apex-tensor/apex_stream.h
    gfmf/svdfeature-gfmf/apex-tensor/apex_tensor.h
    gfmf/svdfeature-gfmf/apex-tensor/apex_tensor_config.h
    gfmf/svdfeature-gfmf/apex-tensor/apex_tensor_cpu.h
    gfmf/svdfeature-gfmf/apex-tensor/apex_tensor_cpu_inline.h
    gfmf/svdfeature-gfmf/apex-tensor/apex_tensor_cpu_inline_common.h
    gfmf/svdfeature-gfmf/apex-tensor/apex_tensor_func_decl.h
    gfmf/svdfeature-gfmf/apex-tensor/apex_tensor_func_decl_common.h
    gfmf/svdfeature-gfmf/apex-tensor/apex_tensor_sse.h
    gfmf/svdfeature-gfmf/apex-utils/apex_buffer_loader.h
    gfmf/svdfeature-gfmf/apex-utils/apex_config.h
    gfmf/svdfeature-gfmf/apex-utils/apex_evaluator.h
    gfmf/svdfeature-gfmf/apex-utils/apex_matrix_csr.h
    gfmf/svdfeature-gfmf/apex-utils/apex_task.h
    gfmf/svdfeature-gfmf/apex-utils/apex_thread.h
    gfmf/svdfeature-gfmf/apex-utils/apex_utils.h
    gfmf/svdfeature-gfmf/solvers/base-solver/apex_svd_base.cpp
    gfmf/svdfeature-gfmf/solvers/base-solver/apex_svd_base.h
    gfmf/svdfeature-gfmf/solvers/booster/apex_booster.cpp
    gfmf/svdfeature-gfmf/solvers/booster/apex_booster.h
    gfmf/svdfeature-gfmf/solvers/booster/apex_gbtree.h
    gfmf/svdfeature-gfmf/solvers/booster/apex_gradboost.h
    gfmf/svdfeature-gfmf/solvers/gfmf/gfmf.cpp
    gfmf/svdfeature-gfmf/solvers/gfmf/gfmf_singlevar_cut.h
    gfmf/svdfeature-gfmf/solvers/gfmf/gfmf_ucut.h
    gfmf/svdfeature-gfmf/solvers/gfmf/gfmf_utree.h
    gfmf/svdfeature-gfmf/tools/combine_ugroup.cpp
    gfmf/svdfeature-gfmf/tools/kddcup_combine_ugroup.cpp
    gfmf/svdfeature-gfmf/tools/line_reorder.cpp
    gfmf/svdfeature-gfmf/tools/line_shuffle.cpp
    gfmf/svdfeature-gfmf/tools/make_feature_buffer.cpp
    gfmf/svdfeature-gfmf/tools/make_ugroup_buffer.cpp
    gfmf/svdfeature-gfmf/tools/svdpp_randorder.cpp
    gfmf/svdfeature-gfmf/apex_svd.h
    gfmf/svdfeature-gfmf/apex_svd_data.cpp
    gfmf/svdfeature-gfmf/apex_svd_data.h
    gfmf/svdfeature-gfmf/apex_svd_model.h
    gfmf/svdfeature-gfmf/svd_feature.cpp
    gfmf/svdfeature-gfmf/svd_feature_infer.cpp
    gfmf/tecent/cpp/evaluateAP.cpp
    gfmf/tecent/cpp/kddcup_feat.h
    gfmf/tecent/cpp/kddcup_spmat.h
    gfmf/tecent/cpp/mkAcntNext.cpp
    gfmf/tecent/cpp/mkCatHist.cpp
    gfmf/tecent/cpp/mkSessionNext.cpp
    gfmf/tecent/cpp/mkSessionPrev.cpp
    gfmf/tecent/cpp/mkSnsStar.cpp
    gfmf/tecent/cpp/mkStarImfb.cpp
    gfmf/tecent/cpp/mkUserActWeek.cpp
    gfmf/tecent/cpp/mkUserAPM.cpp
    gfmf/tecent/cpp/transSessionGap.cpp
    gfmf/tecent/eval-cpp/evalKDDMAP.cpp
    gfmf/tecent/eval-cpp/kddcup_feat.h)

include_directories(gfmf)
include_directories(gfmf/svdfeature-gfmf)
include_directories(gfmf/tecent)

add_executable(gfmf ${SOURCE_FILES})